#pragma once
#include "Channel.h"
namespace xncc {
namespace foundation {
    class ClientInitChannel final : public Channel
    {
      public:
        ClientInitChannel(EventLoop* loop, int sock_fd);
        ~ClientInitChannel() override = default;

        ClientInitChannel(const ClientInitChannel&)             = delete;
        ClientInitChannel(const ClientInitChannel&&)            = delete;
        ClientInitChannel& operator=(const ClientInitChannel&)  = delete;
        ClientInitChannel& operator=(const ClientInitChannel&&) = delete;

        auto Type() -> ChannelType::value override { return ChannelType::CLIENT_INIT_CHANNEL; }
        void handleClose(const std::string& reason) override;
        void handleError(const std::string& reason) override;
    };
}  // namespace foundation
}  // namespace xncc
